<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
            /*
             * Võtame failist Lingitud_leht_1.php teada lingi, mille alusel saadame
             * lingitud failile Lingitud_leht_3.php URL-i kaudu informatsiooni. 
             * 
             * Siin tuleb aga tähele panna süsteemi kitsaskohti, mille alusel server
             * URL-i abil infot vahendada laseb. Teame, et pärast küsimärki tulevad
             * key=value, ehk võtmesõna=võtmesõnaleVastavVäärtus paarid. Neid paare 
             * eraldab ampersand &. Mis juhtub aga siis, kui järjestikku satub kaks ampersandi,
             * või kui info sisaldav ampersandi (või muud URL-il mittesoovitatud tähemärkidest
             * nagu seda on näiteks täpitähtede abil info saatmine üle URL-i)?
             * 
             * Teeme järgmisele lingile sellise mittesoovitatava olukorra, kus infot 
             * kaotsi võib minna. Paneme ampersandi keset eesnime ning veendume
             * et järgmisele lehele jõudes on oluline osa informatsioonist kaotsi läinud
             * (s.h. ampersandi märk ise, mida võib olla oleks olnud soov kuvada). 
            */
        ?>
        
        <a href='Lingitud_leht_3.php?nimi=Rei&no&perenimi=Mänd'>Klikka mu peale ja 
            saadan lehele "Lingitud_leht_3.php" ühe ees- ja perenime
        </a>
        <br/>
        
        <?php
            /*
             * Säärane olukord tekib põhjusel, et üle URL-i saab infot saata kokkuleppeliselt 
             * vaid ASCII character-set  tähesüsteemi kasutades. Kõik märgid, mis 
             * sinna ei kuulu tuleb ümber kodeerida. Et ei peaks kõiki süsteemi mitte
             * kuuluvaid märke pähe õppima ja iga kord märgile õiget vastet otsima, 
             * ongi tehtud funktsioon urlencode() ja urldecode()
             * Täpsemalt saab lugeda siit:
             * urlencode - W3Schools [WWW] http://www.w3schools.com/tags/ref_urlencode.asp (26.01.2013)
             * 
             * Eelneva ebameeldivuse vältimiseks peamegi me URL väärtust järelikult kodeerima 
             * (urlencode) just selle 'ohtliku' koha pealt. Süntaks näeb välja järgmine
             * (NB! pane tähele, et lingid on kirjutatud html-i parsivas koodiosas, mitte 
             * <?php?> tagide vahele. Osa, mida kodeerida, tuleb aga php 
             * tagide vahele. (Ära NetBeansi pahandamist tähele pane, kood töötab
             * õigesti!)
             * Pärast lingile klikkamist jõuab kohale kõik oluline info (kõik tähed 
             * koos ampersandiga Rei&no).
            */
        ?>
        
        <a href='Lingitud_leht_3.php?nimi=
            <?php echo urlencode("Rei&no"); ?>&perenimi=Mänd'>Klikka mu peale ja 
            saadan lehele "Lingitud_leht_3.php" ühe ees- ja perenime
        </a>
        
        <?php
            /*
             * Peale tavalise urlencode on olemas veel ka rawurlencode funktsioon
             * Vahe on selles, kuidas nad töötlevad märke, mis ei kuulu ASCII
             * tähesüsteemi
            */
            
            $nimiTyhikuga = 'Reino Mänd';
            echo '<br/>';
            echo urlencode($nimiTyhikuga); //tühiku asemel + märk
            echo '<br/>';
            echo rawurlencode($nimiTyhikuga); //tühiku asemel %20 märk.
            
            /*
             * Tekib aga küsimus, kumba kodeerimisviisi kasutada.
             * Nimelt, kui loodav link on DÜNAAMILINE link, tuleks URL-i
             * kodeerides kodeerida kõik ? märgile eelnev osa rawurlencode()
             * meetodiga (dekodeerida seega rawurldecode() meetodiga).
             * Kõik ? märgile järgnev osa tuleks kodeerida aga tavalise
             * urlencode meetodiga (ja dekodeerida urldecode() meetodiga)
             */ 
        ?>
        
    </body>
</html>
